window.MaterialAdd = (function($,module){
    _materialForm = $("#materialForm"),
    _materialCode = $("input[name='materialCode']").val() || 0,
    _validate = null;
    
    //websocket
    WEB_SOCKET_SWF_LOCATION = "js/WebSocketMain.swf";
    var websocket = null;
    var clientName = "client" + new Date().format("yyyyMMddhhmmss");
    //判断当前浏览器是否支持WebSocket
    if ('WebSocket' in window) {
        websocket = new WebSocket(wsPath + "websocket?" + clientName);
    } else {
        alert('Not support websocket');
    }
    //连接发生错误的回调方法
    websocket.onerror = function() {
        setMessageInnerHTML("error");
    };
    //连接成功建立的回调方法
    websocket.onopen = function(event) {
        setMessageInnerHTML("open");
    };

    //接收到消息的回调方法
    websocket.onmessage = function(event) {
        //setMessageInnerHTML(event.data);
        $("#rfidCardNumber").val(event.data);
    };
    //连接关闭的回调方法
    websocket.onclose = function() {
        setMessageInnerHTML("close");
    };
    //监听窗口关闭事件，当窗口关闭时，主动去关闭websocket连接，防止连接还没断开就关闭窗口，server端会抛异常。
    window.onbeforeunload = function() {
        websocket.close();
    };

    //将消息显示在网页上
    function setMessageInnerHTML(innerHTML) {
        console.info(innerHTML);
    }
    //关闭连接
    function closeWebSocket() {
        websocket.close();
    }
    
    
    /**
     * 初始化
     */
    function init(){
        bindEvent();
    }
    
    /**
     * 绑定事件
     */
    function bindEvent(){
    	$("#materialForm").validate({
            rules : {
                materialName : {
                    required : true,
                    maxlength : 255
                },
                materialCode : {
                    required : true,
                    maxlength : 255,
                    remote: {
                        url : "materialBaseInfo/isMaterialRepeat",
                        type : "GET",
                        data : {materialCode:function(){
              　　　　　　　　　　　　　　return $('input[name="materialCode"]').val();
              　　　　　　　　　　　　}
                        },
                        async : true,
                        dataType : "json"
                    }
                },
                nums : {
                    required : true,
                    digits : true,
                    min : 1
                },
                rfidCardNumber:{
                	remote: {
                        url : "materialBaseInfo/isRfidCardNumberRepeat",
                        type : "GET",
                        data : {rfidCardNumber:function(){
              　　　　　　　　　　　　　　 return ''+$('input[name="rfidCardNumber"]').val() +'';
              　　　　　　　　　　　　}
                        },
                        async : true,
                        dataType : "json"
                    }
                },
                remark : {
                    maxlength : 255
                }
            },
            messages : {
                materialName : {
                    required : "不能为空",
                    maxlength : "长度不超过255"
                },
                materialCode : {
                    required : "不能为空",
                    maxlength : "长度不超过255",
                    remote : "物料编码不能重复"
                },
                nums : {
                    required : "不能为空",
                    digits : "只能输入整数"
                },
                rfidCardNumber:{
                	remote : "RFID卡号已占用"
                },
                remark : {
                    maxlength : "最大长度255"
                }
            }
        });
        
    }
    
    /**
     * 添加物料
     */
    function addMaterial(){
        if (!_materialForm.valid()) {
            return;
        }
        $.ajax({
        	type : "POST", //提交方式 
            url : path + "materialBaseInfo/materialAddOrUpdate",//路径 
            contentType : "application/json;charset=UTF-8",
            data : JSON.stringify(CommonUtils.serializeToJSON($("form").serializeArray())),//数据，这里使用的是Json格式进行传输 
            success : function(result) {//返回数据根据结果进行相应的处理 
	            if ( result == 'success' ) { 
	        	    alert("操作成功"); 
	        	    window.location.href = path + "materialBaseInfo/toMaterialBaseInfoJsp";
	            } else { 
	        	    alert("操作失败"); 
	            } 
            }
        });
    }
    
    function deleteRfid(materialCode){
    	$.ajax({
    		url:'materialBaseInfo/deleteRfidCard',
    		type:'GET',
    		data:{materialCode:materialCode},
    		dataType:'text',
    		sync:false,
    		success:function(data){
    			alert("解绑成功！")
    			$("input[name='rfidCardNumber'").val('');
    			$("#bindCard").show();
    			$("#deleteCard").hide();
    		},
    		error:function(){
    			alert("解绑失败！");
    		}
    	});
    }
    
    function bindRfid(materialCode){
    	var rfidCardNumber = $("#rfidCardNumber").val();
    	if(rfidCardNumber == '' || rfidCardNumber == null){
    		alert("卡号为空，请刷卡！");
    		return;
    	}
    	$.ajax({
    		url:'materialBaseInfo/bindRfidCard',
    		type:'GET',
    		data:{materialCode:materialCode,rfidCardNumber:rfidCardNumber},
    		dataType:'text',
    		sync:false,
    		success:function(data){
    			alert("绑卡成功！")
    			$("#deleteCard").show();
    			$("#bindCard").hide();
    		},
    		error:function(){
    			alert("绑卡失败！");
    		}
    	});
    }
    
    module.init = init;
    module.addMaterial = addMaterial;
    module.deleteRfid = deleteRfid;
    module.bindRfid = bindRfid;
    return module;
}($, window.MaterialAdd || {}));
$(function() {
    MaterialAdd.init();
});